Oscillation controller for an oscillating body capable of adjusting acceleration thereof

ABSTRACT

In oscillating an oscillating body, a control unit obtains a load torque due to the gravity acting on a drive motor at least at one angular position defined about an axis of rotation. The control unit calculates a specified maximum acceleration depending upon if the load torque Q is acting in a direction in which it hinders the acceleration or deceleration of the drive motor  15  or is acting in a direction in which it assists the acceleration or deceleration. An acceleration for the oscillating body is set so as not to be greater than the calculated specified maximum acceleration. The control unit adjusts the acceleration of the oscillating body depending upon the load torque of when the oscillating body  13  is accelerating or decelerating.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to an oscillation controller for an oscillatingbody and, specifically, to an oscillation controller capable ofadjusting acceleration of the oscillating body.

2. Description of the Related Art

A machine tool such as a machining center includes an oscillating tablefor holding a work. The work is tilted due to oscillation of theoscillating table about an axis of rotation that extends, for example,in a horizontal direction. The work is then machined into a desiredshape by a tool that moves relative to the work. The oscillating tableis oscillated about the axis of rotation by an output torque of a servomotor. Since the center of gravity of the oscillating table is at apredetermined distance from the axis of rotation in a radial direction,a load torque is exerted by action of gravity. The load torque varies,depending upon an angular position of the oscillating table about theaxis of rotation. If the load torque acts in a direction in which ithinders the oscillation of the oscillating table, the torque thataccelerates or decelerates the oscillating table corresponds to a torquethat is a resultant value of the subtraction of the load torque from theoutput torque of the servo motor. Reference should be made toJP-A-2011-44081 and JP-A-2010-262467.

Currently, the acceleration of the oscillating body when oscillating hasbeen fixed. Specifically, an acceleration of the oscillating body iscalculated by subtracting a maximum load torque that hinders theoscillation of the oscillating body from a maximum output torque of aservo motor and further dividing a resultant value of the subtraction byinertia about the axis of rotation. Therefore, at an angular positionwhere the effect of gravity is relatively small, i.e., where the loadtorque is relatively small, only a lower torque is applied, even thougha greater torque can be potentially applied. As a result, a relativelysmall acceleration is set, and thus, the torque of the servo motorcannot be effectively utilized.

The present invention was conceived in view of the above-mentionedcircumstances. Thus, the object of the present invention is to providean oscillation controller for an oscillating body capable of adjustingthe acceleration of the oscillating body when the oscillating bodyoscillates.

SUMMARY OF THE INVENTION

To achieve the above object according to the present invention, anoscillation controller for an oscillating body, for setting anacceleration of the oscillating body when the oscillating body isoscillated by a drive motor about an axis of rotation that extends in ahorizontal direction is provided, wherein

a load torque due to gravity acting on the drive motor is obtained at atleast one angular position defined about the axis of rotation,

if the load torque acts in a direction in which it hinders accelerationor deceleration of the drive motor, a specified maximum acceleration iscalculated by subtracting the load torque from an output torque of thedrive motor and further dividing a resultant value of the subtraction byinertia about the axis of rotation,

if the load torque acts in a direction in which it assists accelerationor deceleration of the drive motor, a specified maximum acceleration iscalculated by adding the load torque to an output torque of the drivemotor and further dividing a resultant value of the addition by theinertia about the axis of rotation, and

an acceleration for the oscillating body at the time of accelerating ordecelerating is set so as not to be greater than the calculatedspecified maximum acceleration.

Further, in the oscillation controller for an oscillating body accordingto the invention,

if the load torque acts in a direction in which it hinders accelerationor deceleration of the drive motor, the specified maximum accelerationis calculated based on a maximum load torque within a range of angles atwhich the oscillating body is accelerating or decelerating, and

if the load torque acts in a direction in which it assists theacceleration or deceleration of the drive motor, the specified maximumacceleration is calculated based on a minimum load torque in a range ofangles at which the oscillating body is accelerating or decelerating.

Furthermore, in the oscillation controller for an oscillating bodyaccording to the invention,

if the oscillating body is accelerating, the specified maximumacceleration is calculated based on an angular position at the start ofacceleration of the oscillating body, and if the oscillating body isdecelerating, the specified maximum acceleration is calculated based onan angular position at the end of deceleration of the oscillating body.

Furthermore, in the oscillation controller for an oscillating bodyaccording to the invention, the specified maximum acceleration is set soas not to be greater than a value that is obtained by dividing theoutput torque of the drive motor by the inertia.

Furthermore, according to the present invention, there is provided amachine tool comprising:

an oscillating body capable of oscillating about an axis of rotationthat extends in a horizontal direction;

a drive motor for oscillating the oscillating body about the axis ofrotation; and

a control unit for setting an acceleration of the oscillating body atthe time of accelerating or decelerating so as not to be greater than aspecified maximum acceleration;

wherein the control unit obtains a load torque due to gravity acting onthe drive motor at at least one angular position defined about the axisof rotation,

if the load torque acts in a direction in which it hinders accelerationor deceleration of the drive motor, the specified maximum accelerationis calculated by subtracting the load torque from an output torque ofthe drive motor and further dividing a resultant value of thesubtraction by inertia about the axis of rotation,

if the load torque acts in a direction in which it assists accelerationor deceleration of the drive motor, the specified maximum accelerationis calculated by adding the load torque to an output torque of the drivemotor and further dividing a resultant value of the addition by theinertia about the axis of rotation, and

an acceleration for the oscillating body at the time of accelerating ordecelerating is set so as not to be greater than the calculatedspecified maximum acceleration.

These and other objects, features and advantages of the invention willbecome more apparent in light of the detailed description of exemplaryembodiments thereof as illustrated in the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a view schematically illustrating a configuration of a machinetool according to one embodiment of the invention;

FIG. 2 is a sectional view taken along line 2-2 in FIG. 1;

FIG. 3 is a sectional view schematically illustrating a state where anoscillating table is oscillating, corresponding to FIG. 2;

FIG. 4 is a sectional view schematically illustrating a state where theoscillating table is oscillating, corresponding to FIG. 2;

FIG. 5 is a sectional view schematically illustrating a state where theoscillating table is oscillating, corresponding to FIG. 2;

FIG. 6 is a sectional view schematically illustrating a state where theoscillating table is oscillating, corresponding to FIG. 2;

FIG. 7 is a flowchart illustrating a flow of processing in a controlunit according to a first embodiment of the invention;

FIG. 8A is a graph illustrating a relationship between the load torqueand the angular position of the oscillating table according to a priorart;

FIG. 8B is a graph illustrating a relationship between the load torqueand the angular position of the oscillating table according to thepresent invention;

FIG. 9 is a sectional view schematically illustrating a state where theoscillating table is oscillating, corresponding to FIG. 2;

FIG. 10 is a flowchart illustrating a flow of processing in the controlunit according to a second embodiment of the invention; and

FIG. 11 is a flowchart illustrating a flow of processing in the controlunit according to a third embodiment of the invention.

DETAILED DESCRIPTION

Embodiments of the invention will now be described with reference to theaccompanying drawings. FIG. 1 is a view schematically illustrating aconfiguration of a machine tool 11 according to one embodiment of theinvention. The machine tool 11 constitutes a machining center of, forexample, a 5-axis vertical type. XYZ reference coordinate system is setin the machine tool 11.

The machine tool 11 includes a bed 12, an oscillating body, e.g., anoscillating table 13 supported on the bed 12 so as to be able tooscillate about an axis X1 of rotation defined in a horizontal directionin parallel with the X-axis, and a turn table 14 supported on theoscillating table 13 so as to be able to rotate about an axis X2 ofrotation defined in a vertical direction in parallel with the Z-axis. Awork W is fixed onto the turn table 14. A drive motor, e.g., a servomotor 15 is coupled to the oscillating table 13. The oscillating table13 is oscillated by rotation of the servo motor 15.

A spindle head 16 is arranged over the oscillating table 13. A tool 18is detachably attached to the lower end of the spindle head 16 via aspindle 17. The tool 18 is rotated by a spindle motor (not shown)incorporated in the spindle head 16. The tool 18 includes cutting toolssuch as an end mill, cutter and drill, as well as grinding tools. Thespindle head 16 moves in the directions of X-axis, Y-axis and Z-axis vialinear feeding mechanisms (not shown) for each of the axes. The linearfeeding mechanisms include a ball screw and a servo motor for rotatingthe ball screw. In this way, a relative movement is realized between thespindle head 16, i.e., the tool 18, and the work W. The tool 18 thatrotates during the relative movement comes into contact with the work Wat a predetermined machining point. The work W is then machined into adesired shape. A linear motor may be used for the linear feedingmechanisms.

The bed 12 includes an angle detector (not shown) for detecting anangular position of the oscillating table 13 about the axis X1 ofrotation. Similarly, the oscillating table 13 includes an angle detector(not shown) for detecting an angular position of the turn table 14.Further, the spindle head 16 includes a plurality of position detectors(not shown) for detecting positions of the spindle head 16 in theX-axis, Y-axis and Z-axis. The positions detected by these positiondetectors are identified, for example, at the coordinate positions ofthe reference coordinate system. The detected angular positions andcoordinate positions are fed back to an NC (numerical control) device19. The NC device 19 executes a variety of calculations according tomachining programs stored in, for example, a memory unit (not shown).The NC device 19 controls the servo motor and the spindle motor based onthe calculations. In the machine tool 11, the oscillating table 13,instead of the spindle head 16, may move in the directions of X-axis,Y-axis and Z-axis.

The NC device 19 includes a command producing unit 21 for producing adrive command according to a machining program and an oscillationcontroller, i.e., a control unit 22 for outputting a drive signal to theservo motor 15 according to the drive command produced by the commandproducing unit 21. The drive command includes, for example, an amount ofoscillation of the oscillating table 13 about the axis X1 of rotationand a specified oscillating velocity of the oscillating table 13 aboutthe axis X1 of rotation. The amount of oscillation may be specified byan angular position at the start of oscillation and by an angularposition at the end of oscillation, or may be specified as an amount ofchanges in angles from the current angular position that is detected.The specified rotary velocity is set as, for example, a constantvelocity V. Like an ordinary control, the servo motor 15 has a positioncontrol loop for controlling the angular position, a speed control loopfor controlling the angular velocity and an electric current controlloop for controlling the acceleration.

FIG. 2 is a sectional view taken along the line 2-2 in FIG. 1. Asdescribed above, the oscillating table 13 is supported by the bed 12 soas to be able to oscillate about the axis X1 of rotation. Theoscillating table 13 extends outward in a direction perpendicular to theaxis X1 of rotation. At a position shown in FIG. 2, the oscillatingtable 13 is in a reference attitude. The oscillating table 13 in thereference attitude is arranged at an angular position of 0°. With theangular position of 0° as a reference, angular positions are definedabout the axis X1 of rotation in the directions opposite to each other.Namely, an angular range is defined from the angular position of 0° toan angular position of 180° in the clockwise direction and an angularrange is defined from the angular position of 0° to an angular positionof −180° in the counterclockwise direction. The oscillating table 13 mayoscillate in either direction about the axis X1 of rotation. However,the angular range of oscillation of the oscillating table 13 is set soas not to be greater than 360°. The servo motor 15 is capable ofoscillating the oscillating table 13 over a predetermined angular rangeabout the axis X1 of rotation, based upon an output torque T of theservo motor 15.

The center G of gravity of the oscillating table 13 which supports thework W and the turn table 14 is at a predetermined distance R from theaxis X1 of rotation.

The center G of gravity is defined in the middle between the two ends ofthe oscillating table 13 in, for example, the X-axis direction. When theoscillating table 13 oscillates about the axis X1 of rotation, a loadtorque Q about the axis X1 of rotation is generated, due to the actionof gravity. As will become obvious from the following description, amagnitude of the load torque Q is specified by a sinusoidal curve whichtakes a minimum value or zero at angular positions of 0° and 180°(−180°) and takes a maximum value at angular positions of 90° and −90°.The load torque Q will be described later in detail. The output torque Tof the servo motor 15 corresponds to a torque which the servo motor 15produces for oscillating the oscillating table 13. The output torque Twill be described later in detail.

If it is presumed that mass M of the oscillating table 13 concentratesat the center G of gravity, the gravity force Mg is defined at thecenter G of gravity in the vertical direction. In this context, grepresents a gravitational acceleration 9.8 [m/s²]. The load torque Q iszero in the reference attitude as shown in FIG. 2. Referring to FIG. 3,on the other hand, if the oscillating table 13 is arranged at an angularposition of a certain angle θ other than 0° or 180° (−180°), then thegravity force Mg can be divided into a tangential component MRg·|sin θ|defined in the tangential direction of an imaginary circle with the axisX1 of rotation as its center and with the distance R as its radius and anormal component MRg·|cos θ| defined in the normal direction. Thetangential component MRg·|sin θ| corresponds to the load torque Q forthe servo motor 15. In this context, |sin θ| and |cos θ| representabsolute values of sin θ and cos θ, respectively.

Next, acceleration of the oscillating table 13, specifically acalculation process of the acceleration will be explained. Referring toFIG. 4, assumed here is a case where the oscillating table 13 isaccelerated from a certain angular position in a direction in which theangle increases within a range of angular positions of, for example, 0°to 90°. In this case, the load torque Q acts against the direction inwhich the oscillating table 13 oscillates and, therefore, acts in adirection to hinder the acceleration of the oscillating table 13. As aresult, at an angular position of a certain angle θ, a value obtained bysubtracting the load torque Q from the output torque T of the servomotor 15 and further by dividing a resultant value of the subtraction byinertia Jm about the axis X1 of rotation corresponds to the accelerationa of the oscillating table 13 at this moment. Namely, the equation:

Acceleration a=(T−MRg·|sin θ|)/Jm

is derived.

The output torque T of the servo motor 15 is set so as not to be greaterthan a maximum torque which can be provided by the servo motor 15. Forexample, in the case where it takes time of 50 ms for the oscillatingtable 13 to accelerate and reach an angular velocity of 50 revolutionsper minute, it requires an angular range of 15° for the acceleration. Inthis case, the load torque Q varies by up to 26%. The angular range inwhich the load torque Q varies to the greatest extent is, for example,from 7.5° to −7.5° through an angle of 0°. The servo motor 15 isselected on a condition that a maximum load torque Q is not greater thana continuously rated torque of the servo motor 15 such that the servomotor 15 will not be overheated. In this case, therefore, it is desiredthat the output torque T used for oscillating the oscillating table 13is set to a magnitude which is smaller by 26% than the continuouslyrated torque of the servo motor 15. Referring next to FIG. 5, assumedbelow is a case where the oscillating table 13 is accelerated from acertain angular position in a direction in which the angle decreaseswithin a range of angular positions, for example, from 0° to 90°. Inthis case, the load torque Q acts in the same direction as the directionin which the oscillating table 13 oscillates and, therefore, acts in adirection to assist the acceleration of the oscillating table 13. As aresult, at an angular position of a certain angle θ, a value obtained byadding the load torque Q to the output torque T of the servo motor 15and further dividing a resultant value of the addition by the inertia Jmabout the axis X1 of rotation corresponds to the acceleration a of theoscillating table 13 at this moment. Namely, the equation:

Acceleration a=(T+MRg·|sin θ|)/Jm

is derived.

The acceleration can also be calculated when the oscillating table 13decelerates from an angular position of a certain angle θ in a directionin which the angle increases or decreases, in the same manner asdescribed above. Namely, if the load torque Q acts in a direction inwhich it hinders the deceleration of the oscillating table 13, theequation:

Acceleration a=(T+MRg·|sin θ|)/Jm

is derived at an angular position of a predetermined angle θ. On theother hand, if the load torque Q acts in a direction in which it assiststhe deceleration of the oscillating table 13, the equation:

Acceleration a=(T+MRg·|sin θ|)/Jm

is derived at an angular position of a certain angle θ.

As described above, the calculation formula for calculating theacceleration a differs, depending upon if the load torque Q exerted onthe servo motor 15 hinders the acceleration or assists the acceleration.According to the invention, therefore, a specified maximum accelerationwhich is included in the drive command output from the control unit 22is calculated by using the above calculation formulas.

Next, described below with reference to FIG. 7 is a control processingfor calculating the specified maximum acceleration. FIG. 7 is aflowchart illustrating a flow of processing in the control unit 22according to a first embodiment of the invention. First, the controlunit 22 obtains a drive command from the command producing unit 21 (stepA1). The drive command includes an amount of displacement (defined as anangular range, for example, from angle θ₁ to angle θ₂ (see FIGS. 6 and9)) of the oscillating table 13 about the axis X1 of rotation, and avelocity V of the oscillating table 13 about the axis X1 of rotation. Asa command for indicating the amount of displacement of the oscillatingtable 13, it may be provided with an amount of displacement from theangular position at the start of command, or with both an angle at thestart of command and an angle at the end of command. The control unit 22then obtains a current angular position θ of the oscillating table 13 asan output of the angle detector (step A2).

The control unit 22 obtains a load torque Q corresponding to the angularposition θ (step A3). The load torque Q may be calculated for eachcontrol cycle or may be obtained by making a reference to a look-uptable which is so associated that a load torque can be referred to froman angular position and which can be read out by the control unit 22.

Next, depending upon the current angular position θ, the control unit 22determines whether the load torque Q is acting in the direction in whichit assists the acceleration or deceleration of the oscillating table 13or is acting in the direction in which it hinders the acceleration ordeceleration (step A4). If the load torque Q is acting in the directionin which it assists the acceleration or deceleration, the control unit22 calculates a specified maximum acceleration according to the formula:

a=(T+MRg·|sin θ|)/Jm

as described above (step A41). Further, if the load torque Q is actingin the direction in which it hinders the acceleration or deceleration,the control unit 22 calculates a specified maximum accelerationaccording to the formula:

a=(T+MRg·|sin θ|)/Jm

as described above (step A42).

The specified maximum acceleration thus calculated is used as aspecified upper limit value of the command acceleration. Therefore, thecontrol unit 22 sets a command acceleration within a range, so as not togreater than the specified maximum acceleration (step A5). The controlunit 22 then calculates a command velocity used in the current controlcycle, based on the current angular position θ and the commandacceleration set at step A5 (step A6). The servo motor 15 is drivenaccording to the command velocity calculated by the control unit 22(step A7).

In the first embodiment described above, an optimum specified maximumacceleration is determined for every control cycle by taking intoaccount the action of the load torque Q that varies, depending upon theangular position. Therefore, the torque of the servo motor 15 can bemore effectively utilized than the prior art in which the accelerationis set so as to be constant at the time of acceleration anddeceleration. In other words, according to this embodiment, theoscillating table 13 is driven with an acceleration equal to or greaterthan the acceleration in the case of the prior art, and the timerequired for oscillating the oscillating table 13 can be shortened.

Next, described below is a second embodiment of the invention. Inadjusting the acceleration a in the circumferential direction asdescribed later, in the machine tool 11 according to the secondembodiment, accelerations are calculated over an angular range fromθ_(S) to θ_(E). θ_(S) represents an angular position at the start ofacceleration or deceleration, and θ_(E) represents an angular positionat the end of acceleration or deceleration. Then, based on a range ofthe accelerations corresponding to the angular range from θ_(S) toθ_(E), a specified maximum acceleration is determined. For calculationof the accelerations, the following conditions are assumed in relationto the angular positions θ_(S) and θ_(E), for example. The sameconditions can also be set symmetrically in relation to the segmentconnecting angles of 0° and 180° (−180°), but are not explained to avoida duplicated description.

The following conditions (1) to (10) will be considered herein:

-   (1) 0°≦θ_(S)<θ_(E)≦90°;-   (2) 0°≦θ_(E)<θ_(S)≦90°;-   (3) 90°≦θ_(S)<θ_(E)≦180°;-   (4) 90°≦θ_(E)<θ_(S)≦180°;-   (5) 0°≦θ_(S)≦90°≦θ_(E)≦180°, and θ_(S)<θ_(E);-   (6) 0°≦θ_(E)≦90°≦θ_(S)≦180°, and θ_(E)<θ_(S);-   (7) −90°≦θ_(S)≦0°≦θ_(E)≦90°, and θ_(S)<θ_(E);-   (8) −90°≦θ_(S)≦0°, and 90°≦θ_(E)≦180°;-   (9) −180°≦θ_(S)≦−90°, and 0°≦θ_(E)≦90°; and-   (10) −180°≦θ_(S)≦−90°, and 90°≦θ_(E)≦180°.    (1) The condition: 0°≦θ_(S)<θ_(E)≦90°

In this angular range, the range in which the load torque can take isexpressed by the following inequation:

MRg·|sin θ_(S)|≦Q≦MRg·|sin θ_(E)|.

In this angular range, the load torque Q acts in the direction in whichit hinders the acceleration if the oscillating table 13 is accelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(E)|)/Jm≦a≦(T−MRg·|sin θ_(S)|)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration. Namely, the specifiedmaximum acceleration at the time of acceleration is

a _(max)=(T−MRg·|sin θ_(E)|)/Jm.

The angular position θ_(E) at the end of acceleration is calculatedaccording to a relation that is satisfied when the oscillating table 13accelerates with the specified maximum acceleration a_(max) up to thecommand velocity V.

As described earlier, the velocity V, i.e., an angular velocity of theoscillating table 13 about the axis X1 of rotation is set so as to beconstant. Therefore, if the oscillating table 13 accelerates from acertain angle θ_(S) toward an angle θ_(E) (θ_(S)<θ_(E)) (e.g., condition(1)), the load torque Q acts in the direction in which it hinders theacceleration of the oscillating table 13 and, therefore, the angularvelocity V is calculated by integrating the acceleration as expressed bythe following numerical formula:

V=∫_(θ) _(S) ^(θ) _(E)((T−MRg·|sin θ_(E)|)/Jm)dθ

Namely, velocity V is expressed as follows:

Velocity V=((T−MRg·|sin θ_(E)|)/Jm)×(θ_(E)−θ_(S)).

θ_(E) is calculated by solving the above equation. For instance, θ_(E)is calculated by substituting for θ_(E) values that gradually increasesfrom θ_(S) until the equation is satisfied.

Next, described below is how to calculate a specified maximumacceleration at the time of deceleration in the angular range of (1).

In this angular range, the load torque Q acts in the direction in whichit assists the deceleration if the oscillating table 13 is decelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torque Q is expressed by the following inequation:

(T+MRg·|sin θ_(S)|)/Jm≦a≦(T+MRg·|sin θ_(E)|)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, i.e.,

a _(max)=(T+MRg·|sin θ_(S)|)/Jm.

The angular position θ_(S) at the start of deceleration is calculatedaccording to the following relation that is satisfied when theoscillating table decelerates with the acceleration a_(max) from thecommand velocity V to velocity of zero:

V=((T+MRg·|sin θ_(S)|)/Jm)×(θ_(E) −θ _(S)).

Here, θ_(S) is calculated by, for example, substituting for θ_(S) valuesthat gradually decrease from θ_(E) until the equation is satisfied.

(2) The condition: 0°≦θ_(E)<θ_(S)≦90°

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

MRg·|sin θ_(E) |≦Q≦MRg·|sin θ_(S)|.

In this angular range, the load torque Q acts in the direction in whichit assists the acceleration if the oscillating table 13 is accelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T+MRg·|sin θ_(E)|)/Jm≦a≦(T+MRg·|sin θ_(S)|)/Jm.

In this embodiment, a minimum value in the range of the acceleration ais set as a specified maximum acceleration and thus, the specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T+MRg·|sin θ_(E)|)/Jm.

The angular position θ_(E) at the end of acceleration is calculatedaccording to the following relation that is satisfied when theoscillating table accelerates with the specified maximum accelerationa_(max) up to the command velocity V:

V=((T+MRg·|sin θ_(E)|)/Jm)×(θ_(S)−θ_(E)).

θ_(E) is calculated by substituting for θ_(E), for example, values thatgradually decrease from θ_(S) until the equation is satisfied.

In this angular range, the load torque Q acts in the direction in whichit hinders the deceleration if the oscillating table 13 is decelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(S)|)/Jm≦a≦(T−MRg·|sin θ_(E))/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, i.e.,

a _(max)=(T−MRg·|sin θ_(S)|)/Jm.

The angular position θ_(S) at the start of deceleration is calculatedaccording to the following relation that is satisfied when theoscillating table 13 decelerates with the specified maximum accelerationa_(max) from the command velocity V to velocity of zero:

V=((T−MRg·|sin θ_(S)|)/Jm)×(θ_(S)−θ_(E)).

θ_(S) is calculated by substituting, for example, for θ_(S) values thatgradually decrease from θ_(E) until the equation is satisfied.

(3) The condition: 90°≦θ_(S)<θ_(E)≦180°

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

MRg·|sin θ_(E) |≦Q≦MRg·|sin θ_(S)|.

In this angular range, the load torque Q acts in the direction in whichit hinders the acceleration if the oscillating table 13 is accelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(S)|)/Jm≦a≦(T−MRg·|sin θ_(E)|)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T−MRg·|sin θ_(S)|)/Jm.

The angular position θ_(S) at the start of acceleration is the angularposition at the start of command.

In this angular range, the load torque Q acts in the direction in whichit assists the deceleration if the oscillating table 13 is decelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T+MRg·|sin θ_(E)|)/Jm≦a≦(T+MRg·|sin θ_(S)|)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, i.e.,

a _(max)=(T+MRg·|sin θ_(E)θ)/Jm.

The angular position θ_(E) at the end of deceleration is the angularposition at the end of command.

(4) The condition: 90°≦θ_(E)<θ_(S)≦180°

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

MRg·|sin θ_(S) |≦Q≦MRg·|sin θ_(E)|.

In this angular range, the load torque Q acts in the direction in whichit assists the acceleration if the oscillating table 13 is accelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torqued Q is expressed by the following inequation:

(T+MRg·|sin θ_(S)|)/Jm≦a≦(T+MRg·|sin θ_(E)|)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T+MRg·|sin θ_(S)|)/Jm.

The angular position θ_(S) at the start of acceleration is the angularposition at the start of command.

In this angular range, the load torque Q acts in the direction in whichit hinders the deceleration if the oscillating table 13 is decelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(E)|)/Jm≦a≦(T−MRg·|sin θ_(S)|)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, i.e.,

a _(max)=(T−MRg·|sin θ_(E)|)/Jm.

The angular position θ_(E) at the end of deceleration is the angularposition at the end of command.

(5) The condition: 0°≦θ_(S)≦90°≦θ_(E) 180° and θ _(S)<θ_(E)

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

MRg·|sin θ_(S) ≦Q≦MRg (where |θ_(E)−90°|≦|θ_(S)−90°|),

or

MRg·|sin θ_(E) ≦Q≦MRg (where |θ_(S)−90°|<|θ_(E)−90°|).

In this angular range, the load torque Q acts in the direction in whichit hinders the acceleration if the oscillating table 13 is accelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg)/Jm≦a≦(T−MRg·|sin θ_(S)|)/Jm (where θ_(E)−90°|≦|θ_(S)−90°|), or

(T−MRg)/Jm≦a≦(T−MRg·|sin θ_(E)|)/Jm (where |θ_(S)−90°|<|θ_(E)−90°|).

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T−MRg)/Jm.

In this angular range, the load torque Q acts in the direction in whichit assists the deceleration if the oscillating table 13 is decelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T+MRg·|sin θ_(S)|)/Jm≦a≦(T+MRg)/Jm (where |θ_(E)−90°|≦|θ_(S)−90°|), or

(T+MRg·|sin θ_(E)|)/Jm≦a≦(T+MRg)/Jm (where |θ_(S)−90°|<|θ_(E)−90°|)

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration.

Therefore, if |θ_(E)−90°|≦|θ_(S)−90°| is satisfied,

a _(max)=(T+MRg·|sin θ_(Ss)|)/Jm,

and if |θ_(S)−90°|<|θ_(E)−90°| is satisfied, then,

a _(max)=(T+MRg·|sin θ_(E)|)/Jm

The angular position θ_(S) at the start of deceleration is calculatedaccording to the following relation that is satisfied when theoscillating table 13 decelerates with the specified maximum accelerationa_(max) from the command velocity V to velocity of zero:

V=((T+MRg·|sin θ_(E)|)/Jm)×(θ_(E) −θ _(S)).

θ_(S) is calculated by substituting, for example, for θ_(S) values thatgradually decrease from θ_(E) until the equation is satisfied.

(6) The condition: 0°≦θ_(E)≦90°≦θ_(S)≦180° and θ_(E)<θ_(S)

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

MRg·|sin θ_(S) |≦Q≦MRg (where |θ_(E)−90°|≦|θ_(S)−90°|),

or

MRg·|sin θ_(E) |≦Q≦MRg (where |θ_(S)−90°|<|θ_(E)−90°|).

In this angular range, the load torque Q acts in the direction in whichit assists the acceleration if the oscillating table 13 is accelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T+MRg·|sin θ_(S)|)/Jm≦a≦(T+MRg)/Jm (where |θ_(E)−90°|≦|θ_(S)−90°|), or

(T+MRg·|sin θ_(E)|)/Jm≦a≦(T+MRg)/Jm (where |θ_(S)−90°|<|θ_(E)−90°|).

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is, if|θ_(E)−90°|≦|θ_(S)−90°| is satisfied,

a _(max)=(T+MRg·|sin θ_(S)|)/Jm,

and if |θ_(S)−90°|<|θ_(E) −90°| is satisfied,

a _(max)=(T+MRg·|sin θ_(E)|)/Jm.

The angular position θ_(E) at the end of acceleration is calculatedaccording to the following relation that is satisfied when theoscillating table accelerates with the specified maximum accelerationa_(max) up to the command velocity V:

V=((T+MRg·|sin θ_(S)|)/Jm)×(θ_(S)−θ_(E)) (where|θ_(E)−90°|≦|θ_(S)−90°|), or

V=((T+MRg·|sin θ_(E)|)/Jm)×(θ_(S)−θ_(E)) (where |θ_(S)−90°|<θ_(E)−90°|).

θ_(E) is calculated by substituting, for example, for θ_(E) values thatgradually decrease from θ_(S) until the equation is satisfied.

In this angular range, the load torque Q acts in the direction in whichit hinders the deceleration if the oscillating table 13 is decelerating.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg)/Jm≦a≦(T−MRg·|sin θ_(S)|)/Jm (where |θ_(E)−90°|≦|θ_(S)−90°|), or,

(T−MRg)/Jm≦a≦(T−MRg·|sin θ_(E)|)/Jm (where |θ _(S)−90°|<|θ_(E) −90°|).

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, and is

a _(max)=(T−MRg)/Jm.

(7) The condition: −90°≦θ_(S)≦0°≦θ_(E)≦90° and θ_(S)<θ_(E)

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

−MRg·|sin θ_(E) |≦Q≦MRg·|sin θ_(S)|.

The direction of action of the load torque Q changes with the angularposition of 0° as a boundary. In the above inequation, the load torque Qof a negative value means that the action is in the opposite direction.In this angular range, the load torque Q at the time when theoscillating table 13 is accelerating changes from the direction ofassisting the acceleration into the direction of hindering theacceleration. Therefore, the range of the accelerations a correspondingto the range of the load torques Q is expressed by the followinginequation:

(T−MRg·|sin θ_(E)|)/Jm≦a≦(T+MRg·|sin θ_(S)|)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T−MRg·|sin θ_(E)|)/Jm.

The angular position θ_(E) at the end of acceleration is calculatedaccording to the following relation that is satisfied when theoscillating table accelerates with the specified maximum accelerationa_(max) up to the command velocity V:

V=((T−MRg·|sin θ_(E)|)/Jm)×(θ_(E)−θ_(S)).

θ_(E) is calculated by substituting, for example, for θ_(E) values thatgradually increase from θ_(S) until the equation is satisfied.

In this angular range, if the oscillating table 13 is decelerating, thenthe load torque Q changes from the direction in which it hinders thedeceleration into the direction in which it assists the deceleration.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(S)|)/Jm≦a≦(T+MRg·|sin θ_(E)|)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, and is

a _(max)=(T−MRg·|sin θ_(S)|)/Jm.

The angular position θ_(S) at the start of deceleration is calculatedaccording to the following relation that is satisfied when theoscillating table decelerates with the specified maximum accelerationa_(max) from the command velocity V to velocity of zero:

V=((T−MRg·|sin θ_(S)|)/Jm)×(θ_(E)−θ_(S)).

θ_(S) is calculated by substituting, for example, for θ_(S) values thatgradually decrease from θ_(E) until the equation is satisfied.

(8) The condition: −90°≦θ_(S)≦0° and 90°≦θ_(E)≦180°

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

−MRg≦Q≦MRg·|sin θ_(S|.)

The direction of action of the load torque Q changes with the angularposition of 0° as a boundary. In the above inequation, the load torque Qof a negative value means that the action is in the opposite direction.In this angular range, if the oscillating table 13 is accelerating, thenthe load torque Q changes from the direction in which it assists theacceleration into the direction in which it hinders the acceleration.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg)/Jm≦a≦(T+MRg·|sin θ_(S)|)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T−MRg)/Jm.

In this angular range, if the oscillating table 13 is decelerating, thenthe load torque Q changes from the direction in which it hinders thedeceleration into the direction in which it assists the deceleration.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(S)|)/Jm≦a≦(T+MRg)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, and is

a _(max)=(T−MRg·|sin θ_(S)|)/Jm.

The angular position θ_(S) at the start of deceleration is calculatedaccording to the following relation that is satisfied when theoscillating table decelerates with the specified maximum accelerationa_(max) from the command velocity V to velocity of zero:

V=((T−MRg·|sin θ_(S)|)/Jm)×(θ_(E)−θ_(S)).

θ is calculated by substituting, for example, for θ_(S) values thatgradually decrease from θ_(E) until the equation is satisfied.

(9) The condition: −180°≦θ_(S)≦−90° and 0°≦θ_(E)≦90°

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

−MRg·|sin θ_(E) ≦Q≦MRg.

The direction of action of the load torque Q changes with the angularposition of 0° as a boundary. In the above inequation, the load torque Qof a negative value means that the action is in the opposite direction.In this angular range, if the oscillating table 13 is accelerating, thenthe load torque Q changes from the direction in which it assists theacceleration into the direction in which it hinders the acceleration.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg·|sin θ_(E)|)/Jm≦a≦(T+MRg)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T−MRg·|sin θ_(E)|)/Jm.

The angular position θ_(E) at the end of acceleration is calculatedaccording to the following relation that is satisfied when theoscillating table 13 accelerates with the specified maximum accelerationa_(max) up to the command velocity V:

V=((T−MRg·|sin θ_(E)|)/Jm)×(θ_(E)−θ_(S)).

θ_(E) is calculated by substituting, for example, for θ_(E) values thatgradually increase from θ_(S) until the equation is satisfied.

In this angular range, if the oscillating table 13 is decelerating, theload torque Q changes from the direction in which it hinders thedeceleration into the direction in which it assists the deceleration.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg)/Jm≦a≦(T+MRg·|sin θ_(E)|)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, and is,

a _(max)=(T−MRg)/Jm

(10) The condition: −180°≦θ_(S)≦−90° and 90°≦θ_(E)≦180°

In this angular range, the range in which the load torque could take isexpressed by the following inequation:

−MRg≦Q≦MRg.

The direction of action of the load torque Q changes with the angularposition of 0° as a boundary. In the above inequation, the load torque Qof a negative value means that the action is in the opposite direction.In this angular range, if the oscillating table 13 is accelerating, thenthe load torque Q changes from the direction in which it assists theacceleration into the direction in which it hinders the acceleration.Therefore, the range of the accelerations a corresponding to the rangeof the load torques Q is expressed by the following inequation:

(T−MRg)/Jm≦a≦(T+MRg)/Jm.

In this embodiment, a minimum value in the range of the accelerations ais set as a specified maximum acceleration and, hence, a specifiedmaximum acceleration a_(max) at the time of acceleration is

a _(max)=(T−MRg)/Jm.

In this angular range, further, if the oscillating table 13 isdecelerating, then the load torque Q changes from the direction in whichit hinders the deceleration into the direction in which it assists thedeceleration. Therefore, the range of the accelerations a correspondingto the range of the load torques Q is expressed by the followinginequation:

(T−MRg)/Jm≦a≦(T+MRg)/Jm.

A specified maximum acceleration a_(max) at the time of deceleration isa minimum value in the range of the accelerations a like theabove-mentioned specified maximum acceleration a_(max) at the time ofacceleration, and is

a_(max)=(T−MRg)/Jm.

The specified maximum accelerations calculated in the angular ranges of(1) to (10) as described above are used for the calculation of commandaccelerations by the control unit 20. Specifically, the control unit 20controls the command acceleration such that the command accelerationbecomes equal to or less than the specified maximum acceleration. Sincethe angular position θ_(E) at the end of acceleration and the angularposition θ_(S) at the start of deceleration depend upon the commandacceleration, they cannot be predetermined. Therefore, the control unit22 estimates, based on a drive command that is input thereto, that whichconditions (1) to (10) should be suitable for an angular range necessaryfor acceleration or deceleration. The control unit 22 furtherapproximately calculates the angular range from O to θ_(E) and the rangeof the load torques Q according to the estimated condition. The controlunit 22 determines whether the angular range from θ_(S) to θ_(E)obtained as a result of the approximate calculation matches with theestimated condition. If the result of the approximate calculationmatches with the estimated condition, the control unit 22 confirms theapproximately calculated angular range from θ_(S) to θ_(E) and the rangeof the load torques Q. If the result of the approximate calculation doesnot match with the estimated condition, the condition is changed and thecalculation process is then conducted again until they match with eachother.

Further described below with reference to FIG. 10 is a controlprocessing for calculating the specified maximum acceleration accordingto this embodiment. FIG. 10 is a flowchart illustrating a flow ofprocessing in the control unit 22 according to a second embodiment ofthe invention.

First, the control unit 22 obtains a drive command from the commandproducing unit 21 (step B1). The drive command includes an amount ofdisplacement (defined as an angular range from angle θ₁ to angle θ₂ (seeFIGS. 6 and 9)), for example, of the oscillating table 13 about the axisX1 of rotation, and a velocity V of the oscillating table 13 about theaxis X1 of rotation. As a command for indicating the amount ofdisplacement of the oscillating table 13, it may be provided with anamount of displacement from an angular position θ_(S) at the start ofcommand, or with both an angle at the start of command and an angle atthe end of command.

Next, based on the current angular position θ and the amount ofdisplacement (i.e., an amount of changes in angular positions) of theoscillating table 13, the control unit 22 approximately calculates anangular range from θ_(S) to θ_(E) necessary for the acceleration up tothe preset command velocity V and a range of the load torques Qcorresponding to the angular range from θ to θ_(E) (step B2). Theangular range from θ to θ_(E) can be calculated through the relation ofthe command velocity V and the angular position θ_(E) at the end ofacceleration in accordance with the calculation process corresponding toany one of the above-mentioned conditions (1) to (10). The control unit22 then determines the angular range from θ to θ_(E) and the range ofthe load torques Q corresponding to the angular range from θ to θ_(E)(step B3). The process at step B3 is conducted by repeating thecalculation until the result of the approximate calculation at step B2matches with the condition selected for the approximate calculation fromthe conditions (1) to (10). The control unit 22 determines a range ofaccelerations corresponding to the range of the torques Q, andidentifies a minimum acceleration in the range (step B4).

As described above, the acceleration corresponding to the load torque Qis calculated according to the formula which switches, depending onwhether the load torque Q assists or hinders the acceleration of theservo motor 15, based on the angular range from θ_(S) to θ_(E) necessaryfor the acceleration up to the command velocity V. More specifically, ifthe load torque Q is acting in the direction in which it hinders theacceleration of the servo motor 15, a value is calculated as a specifiedmaximum acceleration, by subtracting the load torque Q from the outputtorque T of the servo motor 15 and further by dividing a resultant ofthe subtraction by the inertia Jm about the axis X1 of rotation.Further, if the load torque Q is acting in the direction in which itassists the acceleration of the servo motor 15, a value is calculated asa specified maximum acceleration, by adding the load torque Q to theoutput torque T of the servo motor 15 and further by dividing aresultant of the addition by the inertia Jm about the axis X1 ofrotation.

Returning to FIG. 10, the control unit 22 at step B5 sets the minimumacceleration identified at step B4 as a first specified maximumacceleration. The control unit 22 controls the command acceleration soas not to be greater than the first specified maximum acceleration (stepB6).

Next, the control unit 22 approximately calculates an angular range fromθ_(S) to θ_(E) necessary for the deceleration from the command velocityV to velocity of zero (i.e., at the end of command), and a range of theload torque Qs corresponding to the angular range from θ_(S) to θ_(E)(step B7). The angular range from θ_(S) to θ_(E) can be obtained fromthe above-mentioned relation between the above command velocity V andthe angular position θ_(S) at the start of deceleration in accordancewith the calculation process corresponding to any one of theabove-mentioned conditions (1) to (10). The control unit 22 thendetermines the angular range from θ_(S) to θ_(E) and the range of theload torques Q corresponding to the angular range from θ_(S) to θ_(E)(step B8). Like the process at step B3, the process at step B8 isconducted by repeating the calculation until the result of theapproximate calculation at step B7 matches with the condition selectedfor the approximate calculation from the conditions (1) to (10). Thecontrol unit 22 determines a range of accelerations corresponding to therange of the torques Q, and identifies a minimum acceleration in therange according to the above-mentioned method (step B9). Further, thecontrol unit 22 sets the minimum acceleration identified at step B9 as asecond specified maximum acceleration (step B10). The control unit 22controls the command acceleration so as not to be greater than thesecond specified maximum acceleration (step B11).

Next, at step B12, the control unit 22 obtains a current angularposition θ of the oscillating table 13 from the output of the angledetector. The control unit 22 calculates a command velocity, based onthe current angular position θ and the command velocity (step B13). Thecontrol unit 22 controls the servo motor 15, based on the commandvelocity.

FIG. 8A is a graph illustrating a relationship between the load torque Qand the angular position of the oscillating table 13 according to aprior art, and FIG. 8B is a graph illustrating a relationship betweenthe load torque Q and the angular position of the oscillating table 13according to the embodiment of the invention. According to the priorart, as clearly seen from FIG. 8A, a value is calculated as a specifiedmaximum acceleration, by subtracting a maximum load torque that isacting in the direction to hinder the acceleration or deceleration, fromthe output torque T of the servo motor 15 and further by dividing aresultant of the subtraction by the inertia Jm. Therefore, theacceleration is limited even at an angular position where a greatertorque of the servo motor 15 can be utilized. In the graph, the areas ofthe hatched sections represent the angular velocities V.

Referring to FIG. 8B, on the other hand, the present invention is freefrom the limitation in the prior art and therefore, a greater torque canbe effectively utilized for oscillating the oscillating table 13 at anangular position where a greater torque of the servo motor 15 isavailable. Similarly as mentioned above, the areas of the hatchedsections represent the angular velocities V. In this particular example,as clearly seen from FIG. 8B, the angular ranges of the oscillatingtable 13 during acceleration or deceleration are relatively narrower, ascompared to those of the prior art. This means that the time requiredfor accelerating or decelerating the oscillating table 13 is shortened.Therefore, it is understood that the time necessary for oscillating theoscillating table 13 can be shortened.

Next, a third embodiment of the present invention will be explained. Inthe machine tool 11 according to the third embodiment, an accelerationis calculated by the control unit 22 as a first specified maximumacceleration, i.e., as a specified maximum acceleration at the time ofacceleration, based on a load torque Q corresponding to an angularposition θ_(S1) at the start of acceleration, and an acceleration iscalculated by the control unit 22 as a second specified maximumacceleration, i.e., as a specified maximum acceleration at the time ofdeceleration, based on a load torque Q corresponding to an angularposition θ_(E2) at the end of deceleration. The calculating process ofthe acceleration based on the load torque Q is the same as the processmentioned above. That is, if the load torque Q acts in a direction inwhich it hinders the acceleration or deceleration of the servo motor 15,an acceleration is calculated by subtracting the load torque Q from theoutput torque T of the servo motor 15 and further dividing a resultantof the subtraction by inertia Jm about the axis X1 of rotation. If theload torque Q acts in a direction in which it assists the accelerationor deceleration of the servo motor 15, an acceleration is calculated byadding the load torque Q to the output torque T of the servo motor 15and further dividing a resultant of the addition by the inertia Jm aboutthe axis X1 of rotation.

This embodiment is based on the assumption that the load torque Q doesnot significantly vary from the start to the end of acceleration ordeceleration. Namely, as compared to the second embodiment describedabove, this embodiment omits the step of calculating the range in whichthe load torque Q could take from the start to the end of accelerationor deceleration. The angular position θ_(S1) at the start ofacceleration, i.e., at the start of command and the angular positionθ_(E2) at the end of deceleration, i.e., at the end of command, can beimparted by the command producing unit 21. Therefore, in this embodimenta specified maximum acceleration necessary for producing a commandvelocity can be quickly calculated.

Further described below with reference to FIG. 11 is a controlprocessing for calculating the specified maximum acceleration accordingto this embodiment. FIG. 11 is a flowchart illustrating a flow ofprocessing in the control unit 22 according to the third embodiment ofthe invention.

First, the control unit 22 obtains a drive command from the commandproducing unit 21 (step C1). The drive command includes an amount ofdisplacement (defined as an angular range, for example, from angle θ₁ toangle θ₂ (see FIGS. 6 and 9)) of the oscillating table 13 about the axisX1 of rotation and a velocity V of the oscillating table 13 about theaxis X1 of rotation. As a command for indicating the amount ofdisplacement of the oscillating table 13, it may be provided with anamount of displacement from the angular position θ_(S1) at the start ofcommand, or with both an angle θ_(S1) at the start of command and anangle θ_(E2) at the end of command.

Next, based on the angular position θ_(E1) corresponding to the start ofcommand, the control unit 22 calculates a load torque Q (step C2). Thecontrol unit 22 calculates a first specified maximum acceleration basedon the calculated load torque Q (step C3). The calculating process ofthe first specified maximum acceleration is the same as the processmentioned above. The control unit 22 sets a first command accelerationso as not to be greater than the first specified maximum accelerationcalculated at step C3 (step C4). The first command acceleration is usedfor accelerating the oscillating table 13 during the oscillation of theoscillating table 13.

Next, the control unit 22 calculates a load torque Q based on theangular position θ_(E2) corresponding to the end of command (step C5).The control unit 22 calculates a second specified maximum accelerationbased on the calculated load torque Q (step C6). The calculating processof the second specified maximum acceleration is the same as the processmentioned above. The control unit 22 sets a second command accelerationso as not to be greater than the second specified maximum accelerationcalculated at step C6 (step C7). The second command acceleration is usedfor decelerating the oscillating table 13 during the oscillation of theoscillating table 13.

The control unit 22 then obtains a current angular position θ from theangle detector (step C8). The control unit 22 determines whether or notthe current angular position is an angular position at the time ofaccelerating or decelerating (step C9). Namely, at step C9, it isdetermined whether the oscillating table 13 is currently accelerating ordecelerating, or moving at a constant command velocity V.

At step C9, if it is determined that the current angular positioncorresponds to that at the time of accelerating or decelerating, thecontrol unit 22 at step C10 sets a command acceleration so as not to begreater than the first specified maximum acceleration if the oscillatingtable is accelerating, or sets a command acceleration so as not to begreater than the second specified maximum acceleration if theoscillating table is decelerating. The control unit 22 then calculates acommand velocity based on the current angular position and the commandacceleration (step C11). On the other hand, if the control unit 22 atstep C9 determines that the current angular position corresponds to thatat the time of accelerating or decelerating, a specified velocity V isthen output as a command velocity (step C12). The control unit 22controls the servo motor 15 according to the command velocity obtainedat step C11 or C12 (step C13).

In the above embodiments, if the load torque Q is acting on the servomotor 15 in a direction in which it assists the acceleration ordeceleration, the oscillating table 13 can be accelerated or deceleratedwith an acceleration greater than an acceleration a (=T/Jm) provided byonly the output torque T of the servo motor 15. When the angular rangeof oscillation of the oscillating table 13 is small, however, theacceleration could be so great that the oscillating table 13 sometimescannot be decelerated to a predetermined angular position at the end ofdeceleration. In order to avoid this problem, it may be desirable to seta specified maximum acceleration such that an acceleration a is notgreater than that corresponding to the output torque T of the servomotor 15 when there is no effect of gravity, i.e., when it is presumedthat the load torque Q is zero. As a result, the specified maximumacceleration is set so as not to greater than a value obtained bydividing the output torque T of the servo motor 15 by the inertia Jm.

In the above-mentioned embodiments, although the control unit 22 of theinvention is applied to the machining center, it should be noted thatthe present invention can also be applied to other machine tools havingan oscillating body. Namely, the present invention is not limited toonly the embodiments described above with reference to the drawings sofar as the features and functions of the invention can be realized.

EFFECTS OF THE INVENTION

According to the oscillation controller for an oscillating body of thepresent invention, the acceleration of the oscillating body can beadjusted when the oscillating body is oscillating.

Although the invention has been shown and described with exemplaryembodiments thereof, it should be understood by those skilled in the artthat the foregoing and various other changes, omissions and additionsmay be made therein and thereto without departing from the spirit andthe scope of the invention.

1. An oscillation controller for an oscillating body, for setting anacceleration of said oscillating body when the oscillating body isoscillated by a drive motor about an axis of rotation that extends in ahorizontal direction, wherein a load torque due to gravity acting on thedrive motor is obtained at at least one angular position defined aboutsaid axis of rotation, if said load torque acts in a direction in whichit hinders acceleration or deceleration of said drive motor, a specifiedmaximum acceleration is calculated by subtracting said load torque froman output torque of said drive motor and further dividing a resultantvalue of the subtraction by inertia about said axis of rotation, if saidload torque acts in a direction in which it assists acceleration ordeceleration of said drive motor, a specified maximum acceleration iscalculated by adding said load torque to an output torque of said drivemotor and further dividing a resultant value of the addition by theinertia about said axis of rotation, and an acceleration for theoscillating body at the time of accelerating or decelerating is set soas not to be greater than the calculated specified maximum acceleration.2. The oscillation controller for an oscillating body according to claim1, wherein if the load torque acts in a direction in which it hindersacceleration or deceleration of the drive motor, the specified maximumacceleration is calculated based on a maximum load torque within a rangeof angles at which the oscillating body is accelerating or decelerating,and if the load torque acts in a direction in which it assists theacceleration or deceleration of the drive motor, the specified maximumacceleration is calculated based on a minimum load torque in a range ofangles at which the oscillating body is accelerating or decelerating. 3.The oscillation controller for an oscillating body according to claim 1,wherein if said oscillating body is accelerating, said specified maximumacceleration is calculated based on an angular position at the start ofacceleration of said oscillating body, and if said oscillating body isdecelerating, said specified maximum acceleration is calculated based onan angular position at the end of deceleration of said oscillating body.4. The oscillation controller for an oscillating body according to claim1, wherein said specified maximum acceleration is set so as not to begreater than a value that is obtained by dividing the output torque ofsaid drive motor by said inertia.
 5. The oscillation controller for anoscillating body according to claim 2, wherein said specified maximumacceleration is set so as not to be greater than a value that isobtained by dividing the output torque of said drive motor by saidinertia.
 6. The oscillation controller for an oscillating body accordingto claim 3, wherein said specified maximum acceleration is set so as notto be greater than a value that is obtained by dividing the outputtorque of said drive motor by said inertia.
 7. A machine toolcomprising: an oscillating body capable of oscillating about an axis ofrotation that extends in a horizontal direction; a drive motor foroscillating said oscillating body about said axis of rotation; and acontrol unit for setting an acceleration of said oscillating body at thetime of accelerating or decelerating so as not to be greater than aspecified maximum acceleration; wherein said control unit obtains a loadtorque due to gravity acting on said drive motor at at least one angularposition defined about said axis of rotation, if said load torque actsin a direction in which it hinders acceleration or deceleration of saiddrive motor, the specified maximum acceleration is calculated bysubtracting said load torque from an output torque of said drive motorand further dividing a resultant value of the subtraction by inertiaabout said axis of rotation, if said load torque acts in a direction inwhich it assists acceleration or deceleration of said drive motor, thespecified maximum acceleration is calculated by adding said load torqueto an output torque of said drive motor and further dividing a resultantvalue of the addition by the inertia about said axis of rotation, and anacceleration for the oscillating body at the time of accelerating ordecelerating is set so as not to be greater than the calculatedspecified maximum acceleration.